package com.kaizeli.website.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kaizeli.website.pojo.entity.OutputValueDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * 产值Mapper接口
 */
@Mapper
public interface OutputValueMapper extends BaseMapper<OutputValueDO> {
    
    /**
     * 分页查询产值记录
     */
    Page<OutputValueDO> pageQuery(Page<OutputValueDO> page,
                                   @Param("employeeId") Long employeeId,
                                   @Param("projectId") Long projectId,
                                   @Param("projectCode") String projectCode,
                                   @Param("accountPeriod") String accountPeriod,
                                   @Param("status") String status);
    
    /**
     * 根据员工ID和账期查询产值
     */
    List<OutputValueDO> selectByEmployeeAndPeriod(@Param("employeeId") Long employeeId,
                                                    @Param("accountPeriod") String accountPeriod);
    
    /**
     * 根据项目编号和账期查询产值
     */
    List<OutputValueDO> selectByProjectAndPeriod(@Param("projectCode") String projectCode,
                                                  @Param("accountPeriod") String accountPeriod);
    
    /**
     * 统计员工产值
     */
    BigDecimal sumOutputByEmployee(@Param("employeeId") Long employeeId,
                                   @Param("startPeriod") String startPeriod,
                                   @Param("endPeriod") String endPeriod);
    
    /**
     * 统计项目产值
     */
    BigDecimal sumOutputByProject(@Param("projectId") Long projectId,
                                   @Param("startPeriod") String startPeriod,
                                   @Param("endPeriod") String endPeriod);
}

